package com.bblocks.dbmonitor.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <p>Project: bblocks-pro - CanalTable</p>
 * <p>描述：标记监控注解</p>
 *
 * @Author Zhao [125043150@qq.com]
 * @Date 2024/1/15 14:34
 * @Version 1.0
 * @since 8
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MonitorTable {

    final String DOT = ".";

    /**
     * 表名（t_test/db2.t_test）,存在库名则全匹配，否则只匹配表名
     * @return
     */
    String value() default "";

    /**
     * 主键(驼峰结构)
     * @return
     */
    String id() default "id";



    /**
     * 主键缓存key规则(更新后的字段值（驼峰）)
     * 支持SPEL 表达式（为空则为：id值）
     * @return
     */
    String[] cacheKeySpels() default {};
}
